This disclosure generally relates to computer programming and debugging, and more specifically to the automated instrumentation of computer program code.
A developer who writes a software application can instrument the software code to collect and report certain information during the code's execution. Generally, the developer chooses where to place instrumentation within the code. Furthermore, the developer can specify what information is to be collected and reported through the instrumentation.
In many scenarios, a developer may not be in a position to decide where best to instrument the code and what information to collect through the instrumentation. As such, an analyst analyzing the execution of the software code at a subsequent time point may not have the most relevant data. For example, the analyst may find that there are gaps in the instrumentation of the code because it did not occur to the developer to instrument at those locations at the time of code development. Accordingly, it becomes difficult for the analyst to perform certain tasks such as debugging or troubleshooting the application.